﻿using System;
using System.Collections.Generic;

namespace Atendex.Dominio.Interfaces
{
    public interface IOrdemServico
    {
        int Id { get; set; }
        DateTime? DataInicio { get; set; }
        DateTime? DataResolucao { get; set; }
        StatusSolicitacao Status { get; set; }
        IList<ITipoSolicitacao> Tipos { get; }
        IAtendimento Atendimento { get; }
        IList<IMensagem> Mensagens { get; set; }
        IArea Area { get; }
        string Email { get; set; }
        bool Visivel { get; set; }

        void AcrescentarTipo(ITipoSolicitacao tipo);

        #region métodos
        /// <summary>
        /// Envia um e-mail para a área responsável pela solicitação
        /// </summary>
        /// <param name="servicoEmail"></param>
        void NotificarResponsavel();
        void Responder(IMensagem mensagem);
        void EnviarEmail();
        string GeraIdCifrado();
        int? RecuperaIdCifrado(string idCifrado);
        #endregion
    }
}
